import base from './baseUrl.js'

export default class RequestQQT {
	http(param) {
		// 请求参数
		let url = param.url;
		let method = param.method;
		let header = param.header || {};
		let data = Object.assign(param.data || {});
		let hideLoading = param.hideLoading || false;
		let whetherData = param.whetherData;
		//拼接完整请求地址
		let requestUrl = base.url_qqt + url;

		//请求方式:GET或POST(POST需配置
		// header: {'content-type' : "application/x-www-form-urlencoded"},)
		if (method) {
			method = method.toUpperCase(); //小写改为大写
			if (method == "POST") {
				header = Object.assign({
					'content-type': "application/x-www-form-urlencoded"
					// 'content-type': "application/json"
				}, param.header, {
					Token: uni.getStorageSync("token")
				})
			} else {
				header = Object.assign({
					'content-type': "application/json"
				}, param.header, {
					Token: uni.getStorageSync("token")
				})
			}
		}
		//加载圈
		if (!hideLoading) {
			uni.showLoading({})
		}
		// 返回promise
		return new Promise((resolve, reject) => {
			// 请求
			uni.request({
				url: requestUrl,
				data: data,
				method: method,
				header: header,
				success: (res) => {
					// console.log('qqt请求.res = ', res);
					//隐藏加载
					if (!hideLoading) {
						uni.hideLoading();
					}
					// 判断 请求是否成功 
					if (res.statusCode == 200) {
						//判断  接口返回列表中是否存在 data 列表 （因为接口不统一所以从这里判断 promise返回什么数据）
						if (whetherData) {
							// code判断:1成功,不等于1错误
							if (res.data.statuscode == 200) {
								// 成功            
								resolve(res.data)
								return true
							} else {
								return false
							}
						} else {
							console.log('不判断', res.data);
							resolve(res.data)
							return true
						}
					} else {
						return false;
					}
				},
				//请求失败
				fail: (err) => {
					console.log('请求失败', err);
					//隐藏加载
					if (!hideLoading) {
						uni.hideLoading();
					}
					return false;
				},
				//请求完成
				complete() {
					return;
				}
			})
		})
	}
}